package com.hsurosy.hsuchain.nft.web.util;

import com.hsurosy.hsuchain.nft.base.response.PageResponse;
import com.hsurosy.hsuchain.nft.web.vo.MultiResult;

import static com.hsurosy.hsuchain.nft.base.response.ResponseCode.SUCCESS;

/**
 * 多结果转换器
 *
 * @Author Hsu琛君珩
 * @Date 2024-10-05 5:14
 * @Description
 * @Version: v1.0.0
 */
public class MultiResultConvertor {

    /**
     * 将分页响应 {@link PageResponse} 转换为多结果 {@link MultiResult}。
     * <p>
     * 此方法用于将分页的响应对象转换成前端所需的多结果响应对象，包含分页信息和数据。
     *
     * @param pageResponse 分页响应对象，包含分页的数据
     * @param <T>          数据类型
     * @return 转换后的多结果对象
     */
    public static <T> MultiResult<T> convert(PageResponse<T> pageResponse) {
        // 创建并返回一个MultiResult对象，包含分页数据和状态信息
        MultiResult<T> multiResult = new MultiResult<>(true, SUCCESS.name(), SUCCESS.name(),
                pageResponse.getDatas(), pageResponse.getTotal(), pageResponse.getCurrentPage(),
                pageResponse.getPageSize());
        return multiResult;
    }
}
